﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using UricaoWeb.LogicaDeNegocios.Reportes_Graficos___Housekeeping___Limpieza;

namespace UricaoWeb.Presentacion
{
    public partial class API_limpieza_AsignarPersonal : API_Seguridad_Principal
    {
        private LimpiezaLogica _limpiezaLog = new LimpiezaLogica();

        ///<sumary>
        ///Metodo que se encarga de cargar la pagina
        ///Parámetros:
        ///Object sender: objeto obtenido 
        ///EventArgs e:  evento de la ventana 
        ///</sumary>
        protected void Page_Load(object sender, EventArgs e)
        {
            var master = Master as MasterPage;
            if (master != null)
            {
                master.actualizar_label();
            }
            base.validar_usuario();
            TBNumHabitacion.Attributes.Add("onkeypress", "javascript:return ValidarSoloNumeros(event);");

            if (!IsPostBack)
            {
                LimpiezaLogica.LlenarListaCheckPersonal(CBListEmpleados);
            }
        }

        ///<sumary>
        ///Metodo que valida la informaciondel listado de los empleados asignados,
        ///cuando se da click al boton continuar 
        ///Parámetros:
        ///Object sender: objeto obtenido 
        ///EventArgs e:  evento de la ventana
        ///</sumary>
        protected void BContinuarAsignarP_Click(object sender, EventArgs e)
        {
            LMensajeErrorAsignarP.Visible = false;
            LimpiezaLogica.LimpiarVariableError();
            string fecha = DateTime.Now.ToString("dd/MM/yyyy");
            string fechaYhoraLimpieza = fecha + ' ' + HoraLimpieza.Value;
            
            if (_limpiezaLog.ValidacionesAsignarP(TBNumHabitacion, fechaYhoraLimpieza, CBListEmpleados, LMensajeErrorAsignarP))
            {
                List<int> _listaEmpleados ;

                _listaEmpleados = _limpiezaLog.ListaEmpleadosAsignados(CBListEmpleados, LMensajeErrorAsignarP);
                
                if ((_listaEmpleados != null) && (_limpiezaLog.ConsultarHabitacionesExistentes(Convert.ToInt32(TBNumHabitacion.Text))))
                {
                    if (_limpiezaLog.AsignarPersonal(TBNumHabitacion.Text, fechaYhoraLimpieza, _listaEmpleados))
                    {
                        LimpiezaLogica._mensajeFinal = "Solicitud Completa";
                    }
                    mensajesAlUsuario();
                }
                else
                {
                    LimpiezaLogica._mensajeFinal = "Solicitud no completada. Verifique los datos";
                    mensajesAlUsuario();
                }
            }
        }

        ///<sumary>
        ///Metodo que se encarga del mensaje de alerta para el usuario  
        ///</sumary>
        private void mensajesAlUsuario()
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "script", "alert('" + LimpiezaLogica._mensajeFinal + "');", true);
        }



    }
}